package com.lw.demo03;

/**
 * @author LW
 * @2020/10/1 19:51
 */
//静态代理

/**
 * 代理模式的好处：
 * 可以使真是角色的操作更加纯粹！不用去关注一些公共的业务
 * 公共业务就交给代理角色！实现业务的分工！
 * 公共业务发生扩展的时候，方便集中管理！
 *
 * 缺点：
 *  一个真实角色就会产生一个代理角色，代码量翻倍~开发效率变低---------》解决这个缺点的就是  “动态代理”
 */
public class Client {
    /**
     * 代码步骤：
     *  1：接口
     *  2：真实角色
     *  3：代理角色
     *  4：客户客户端访问代理角色
     * @param args
     */
    public static void main(String[] args) {
        //真实角色
        Host host = new Host();
        //代理角色：现在没有，需要处理程序去生成
        ProxyInvocationHandler pih = new ProxyInvocationHandler();
        //通过调用程序处理角色来处理我们要调用的接口对象！
        pih.setRent(host);
        Rent proxy =(Rent) pih.getProxy();//这里的proxy是动态代理生成的，我们并没有写
        proxy.rent();


    }
}
